import matplotlib.pyplot as plt
import numpy as np

# 时间参数
t = np.linspace(0, 50, 1000)  # 50微秒时间范围
f_scl = 100e3  # 100kHz SCL频率

# 生成SCL时钟信号
scl = 0.5 * (np.sign(np.sin(2*np.pi*f_scl*t)) + 1)

# 生成SDA数据信号（示例：起始条件+数据传输）
sda = np.ones_like(t)
# 模拟起始条件：SCL高时SDA下降沿
start_condition = (t > 5) & (t < 10)
sda[start_condition] = 1 - (t[start_condition]-5)/5

plt.figure(figsize=(12, 6))
plt.subplot(2,1,1)
plt.plot(t, sda, 'b-', linewidth=2, label='SDA')
plt.ylabel('SDA电平')
plt.grid(True)

plt.subplot(2,1,2)
plt.plot(t, scl, 'r-', linewidth=2, label='SCL')
plt.ylabel('SCL电平')
plt.xlabel('时间 (μs)')
plt.grid(True)
plt.show()